package com.service.abolishing.service.impl;


import com.service.abolishing.dao.OperateInfoDao;
import com.service.abolishing.dto.OpUserInfoDto;
import com.service.abolishing.entity.OperateInfo;
import com.service.abolishing.service.OperateInfoService;
import com.service.config.utils.ModelMapperUtil;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.List;

/**
 * 运营人员管理表(OperateInfo)表服务实现类
 *
 * @author makejava
 * @since 2021-08-10 16:14:26
 */
@Service("operateInfoService")
public class OperateInfoServiceImpl implements OperateInfoService {
    @Resource
    private OperateInfoDao operateInfoDao;

    /**
     * 通过ID查询单条数据
     *
     * @param id 主键
     * @return 实例对象
     */
    @Override
    public OperateInfo queryById(String id) {
        return this.operateInfoDao.queryById(id);
    }

    /**
     * 查询多条数据
     *
     * @param offset 查询起始位置
     * @param limit  查询条数
     * @return 对象列表
     */
    @Override
    public List<OperateInfo> queryAllByLimit(int offset, int limit) {
        return this.operateInfoDao.queryAllByLimit(offset, limit);
    }

    /**
     * 新增数据
     *
     * @param operateInfo 实例对象
     * @return 实例对象
     */
    @Override
    public OperateInfo insert(OperateInfo operateInfo) {
        this.operateInfoDao.insert(operateInfo);
        return operateInfo;
    }

    /**
     * 修改数据
     *
     * @param operateInfo 实例对象
     * @return 实例对象
     */
    @Override
    public OperateInfo update(OperateInfo operateInfo) {
        this.operateInfoDao.update(operateInfo);
        return this.queryById(operateInfo.getId());
    }

    /**
     * 通过主键删除数据
     *
     * @param id 主键
     * @return 是否成功
     */
    @Override
    public boolean deleteById(String id) {
        return this.operateInfoDao.deleteById(id) > 0;
    }

    @Override
    public OpUserInfoDto queryAllByNameAndPassword(OpUserInfoDto opUserInfoDto) {
        OperateInfo operateInfo = operateInfoDao.queryAllByNameAndPassword(opUserInfoDto.getUserName(), opUserInfoDto.getPasssword());
        opUserInfoDto = ModelMapperUtil.strictMap(operateInfo, OpUserInfoDto.class);
        return opUserInfoDto;
    }
}
